// router里的index.js 把准备好路由组件注册到路由里

import Vue from 'vue' // 必须写
import Router from 'vue-router' // 加载路由
import Login from '../components/Login.vue'
import Home from '../components/Home.vue'
import Welcome from "../components/Welcome.vue"
import Users from "../components/user/Users.vue"
Vue.use(Router) // 告诉vue使用路由

// 创建router 对路由进行管理，它是由构造函数 new vueRouter() 创建，接受routes 参数。
const router = new Router({
  routes: [ // routes！！！不要写成routers
    { path: '/', redirect: '/login' },
    { path: '/login', component: Login },
    {
      path: '/home', component: Home, redirect: '/welcome', children: [
        { path: '/welcome', component: Welcome }, { path: '/users', component: Users }]
    }
  ]
})

// 为路由对象添加beforeEach导航守卫
// 挂载路由导航守卫
router.beforeEach((to, from, next) => {
  // to将要访问的路径
  // from代表从哪个路径跳转而来
  // next是一个函数，表示放行
  // next()放行   next('/login') 强制跳转
  // 如果访问的是login页面，直接放行
  if (to.path === '/login') return next()
  // 从sessionStorage中获取到保存的token
  const tokenStr = window.sessionStorage.getItem('token')
  // 没有token，强制跳转到登录页
  if (!tokenStr) return next('/login')
  next()
})

// 默认导出
export default router
